﻿#include "stdafx.h"
#include "RoutineFactory.h"
#include "Routine/DeathKnight/DkActionBlood.h"
#include "Routine/DeathKnight/DkActionUnholy.h"
#include "Routine/Warrior/Warrior_Fury.h"
#include "Routine/Druid/Druid_Restoration.h"
#include "Routine/Druid/Druid_Balance.h"


RoutineFactory::RoutineFactory()
{
}


RoutineFactory::~RoutineFactory()
{
}

std::shared_ptr<IRoutine> RoutineFactory::ConstructRoutineByType(SpecializationID specID)
{
	std::shared_ptr<IRoutine> ret;
	switch (specID)
	{
	case Blood:
		ret = std::make_shared<DkActionBlood>();
		break;
	case Unholy:
		ret = std::make_shared<DkActionUnholy>();
		break;
	case Frost:
		break;
	case Fury:
		ret = std::make_shared<Warrior_Fury>();
		break;
	case Restoration:
		ret = std::make_shared<DruidRestoration>();
		break;
	case Balance:
		ret = std::make_shared<Druid_Balance>();
		break;
	default:
		break;
	}
	return ret;
}
